/**
 * 创建应用
 */
var App = function() {
    return {
        /**
         * 初始化
         * 应用入口
         */
        init : function(require) {
            $('#list').on('click', 'a', function(e){
                switch($(e.target).attr('id')){
                    case 'query':
                        App.doQuery();
                        break;
                    case 'get':
                        App.doGet();
                        break;
                    case 'insert':
                        App.doInsert();
                        break;
                    case 'del':
                        App.doDelete();
                        break;
                    case 'update':
                        App.doUpdate();
                        break;
                    case 'execute':
                        App.doExecute();
                        break;
                }
            });
        },
        /**
         * 查询数据 
         */
        doQuery: function(){
            //查询数据
            Fw.util.Ajax.query({
                //数据源（自定以URL）
                //url: '/data/demo1Service/XXX.json',
                //数据源（服务接口）
                //service: 'demo1Service/queryXXX',
                //method: 'queryXXX',
                //service: 'demo1Service',
                //method: 'query',//默认为query，方法名称必须是query开头
            	//过路交易
            	httpAdapter: 'demo1Service/query',
                //请求参数
                params: {
                    name: '1'
                },
                //排序方式（仅对服务接口queryXXX有效）
                //sort: [{
                //    property : 'table1.name',
                //    direction : 'asc'
                //}, {
                //    property : 'table1.lastModiDate',
                //    direction : 'asc'
                //}],
                //是否使用数据挡板（默认false）
                staticData: false,
                //请求成功后回调
                success: function(data, result) {
                    alert(Fw.encode(data));
                    console.log(data);
                    console.log(result);
                },
                //请求错误后回调
                failure: function(status, textStatus, error) {
                    alert(status);
                }
            });
        },
        /**
         * 查询数据 
         */
        doGet: function(){
            //获取数据
            Fw.util.Ajax.get('sm', {
                //数据源（自定以URL）
                //url: '/data/demo1Service/XXX.json',
                //数据源（服务接口）
                //service: 'demo1Service.getXXX',
                //service: 'demo1Service/getDataByName',
                httpAdapter: 'demo1Service/getDataByName',
                //service: 'flow001',
                //method: 'getDataByName',//方法名称必须是get开头
                //请求参数
                params: {
                    name: 'test1'
                },
                //是否使用数据挡板（默认false）
                staticData: false,
                //请求成功后回调
                success: function(data, result) {
                    alert(Fw.encode(data));
                    console.log(data);
                },
                //请求错误后回调
                failure: function(status, textStatus, error) {
                    alert(status);
                }
            });
        },
        /**
         * 查询数据 
         */
        doInsert: function(){
        	//插入的数据
        	var insertData = {
        		name: 'sm新增插入',
        		remark: 'sm新增插入备注',
        		type: 'bdb6981c-d38f-44e9-a305-dcde15096cb5',
        		lastModiDate: '2016-08-31',
        	};
        	
            //新增数据
            Fw.util.Ajax.insert(insertData, {
                //数据源（自定以URL）
                //url: '/data/demo1Service/XXX.json',
                //数据源（服务接口）
                //service: 'demo1Service.insert',
                //service: 'demo1Service',
            	httpAdapter: 'demo1Service/insert',
                //method: 'insert',//默认为insert，方法名称必须是insert开头
                //请求参数
                //params: {
                //    p1: 'xxxx'
                //},
                //是否使用数据挡板（默认false）
                staticData: false,
                //请求成功后回调
                success: function(data, result) {
                    alert(Fw.encode(data));
                },
                //请求错误后回调
                failure: function(status, textStatus, error) {
                    alert(status);
                }
            });
        },
        /**
         * 删除数据 
         */
        doDelete: function(){
            //删除数据
            Fw.util.Ajax.del('1a3963ce-e2ab-4f48-9cdb-615448a244fc', {
                //数据源（自定以URL）
                //url: '/data/demo1Service/XXX.json',
                //数据源（服务接口）
                //service: 'demo1Service.delete',
                //service: 'demo1Service',
                //method: 'delete',//默认为delete，方法名称必须是delete开头
            	httpAdapter: 'demo1Service/delete',
                //请求参数
                //params: {
                //    p1: 'xxxx'
                //},
                //是否使用数据挡板（默认false）
                staticData: false,
                //请求成功后回调
                success: function(data, result) {
                    alert(Fw.encode(data));
                },
                //请求错误后回调
                failure: function(status, textStatus, error) {
                    alert(status);
                }
            });
        },
        /**
         * 查询数据 
         */
        doUpdate: function(){
            //删除数据
            Fw.util.Ajax.update('arg1', {
                //数据源（自定以URL）
                //url: '/data/demo1Service/XXX.json',
                //数据源（服务接口）
                //service: 'demo1Service.updateXXX',
                service: 'demo1Service',
                //method: 'update',//默认为update，方法名称必须是update开头
                //请求参数
                params: {
                    p1: 'xxxx'
                },
                //是否使用数据挡板（默认false）
                staticData: true,
                //请求成功后回调
                success: function(data, result) {
                    alert(Fw.encode(data));
                },
                //请求错误后回调
                failure: function(status, textStatus, error) {
                    alert(status);
                }
            });
        },
        /**
         * 执行数据提交
         */
        doExecute: function(){
            //删除数据
            Fw.util.Ajax.execute('arg1', {
                //数据源（自定以URL）
                //url: '/data/demo1Service/XXX.json',
                //数据源（服务接口）
                //service: 'demo1Service.executeXXX',
                service: 'demo1Service',
                method: 'executeUpdate',//方法名称必须是execute开头
                //请求参数
                params: {
                    p1: 'xxxx'
                },
                //是否使用数据挡板（默认false）
                staticData: true,
                //请求成功后回调
                success: function(data, result) {
                    alert(Fw.encode(data));
                },
                //请求错误后回调
                failure: function(status, textStatus, error) {
                    alert(status);
                }
            });
        }
    };
}();

/**
 * 页面加载完毕后，初始化应用
 */
Fw.onReady(App);
